import axios from 'axios'

const urlPre = '/prod-api'
// const urlPre = '/prod-api' // 地址前缀

const api = {
  listData: urlPre + '/system/dict/data/list', // 查询字典数据
  getDictList: urlPre + '/claimCard/getDict', // 获取字典
  getToken: '/system/token/login', // 获取token
  register: '/CUser/register', // 用户注册
  userLogin: '/CUser/login', // 用户登录
  getArea: '/system/area/treeselect', // 获取区域
  getCode: '/captchaImage', // 获取验证码
  changeUserInfo: '/CUser/changeUserInfo', // 修改个人信息
  resetPassword: '/CUser/updatePwd', // 重置个人密码
  salary: '/CUser/salary',
  getCardInfoQuery: urlPre + '/WeChatInterface/provinceData/getCardInfoQuery', // 查询我的社保卡
  getBankOutletList: urlPre + '/WeChatInterface/provinceData/getBankOutletList', // 社保卡领卡 激活网点查询
  getPhoneNumber: urlPre + '/WeChatInterface/provinceData/getPhoneNumber' // 查询金融活动预留手机号
}

axios.interceptors.request.use(function (config) {
  // config.headers['Content-Type'] = 'application/json'
  // config.headers.Authorization = sessionStorage.getItem('token')
  config.timeout = 60000
  return config
}, function (error) {
  return Promise.reject(error)
})

// axios.interceptors.response.use(function (response) {
//   return response
// }, function (error) {
//   return Promise.reject(error)
// })

export default {
  /**
   * get请求
   * @param apiName api名称
   * @param param 入参
   * @param headers 请求头
   * @returns {Promise<any>}
   */
  get (url, param = {}, headers = {}) {
    console.info('请求参数：', param)
    return new Promise((resolve, reject) => {
      return axios.get(url, {
        params: param,
        headers: headers
      }).then(res => {
        console.info('请求返回：', res.data)
        // if (res.data.code === 200) {
        //   resolve(res.data)
        // } else {
        //   reject(res.data)
        // }
        resolve(res.data)
      }).catch(err => {
        if (err.response && err.response.status !== 504) {
          reject({ message: '请求接口报错！错误码：' + err.response.status })
        } else {
          reject({ message: '请求超时，请重试。' })
        }
      })
    })
  },
  /**
   * post 请求
   * @param apiName api名称
   * @param data 入参
   * @param headers 请求头
   * @returns {Promise<any>}
   */
  post (apiName, data = {}, headers = {}) {
    console.info('请求参数：', data)
    return new Promise((resolve, reject) => {
      return axios.post(api[apiName], data, {
        headers: headers,
        header: { 'Content-Type': 'application/x-www-form-urlencoded' }
      }).then(res => {
        console.info('请求返回：', res.data)
        resolve(res.data)
        // if (res.data.code === 200) {
        //   resolve(res.data)
        // } else {
        //   reject(res.data)
        // }
      }).catch(err => {
        if (err.response && err.response.status !== 504) {
          reject({ message: '请求接口报错！错误码：' + err.response.status })
        } else {
          reject({ message: '请求超时，请重试。' })
        }
      })
    })
  },
  /**
   * post 请求（传参json格式）
   * @param apiName api名称
   * @param data 入参
   * @param headers 请求头
   * @returns {Promise<any>}
   */
  postJson (apiName, data = {}, headers = {}) {
    console.info('请求参数：', data)
    return new Promise((resolve, reject) => {
      return axios.post(api[apiName], data, {
        headers: headers
      }).then(res => {
        console.info('请求返回：', res.data)
        if (res.data.code === 200) {
          resolve(res.data)
        } else {
          reject(res.data)
        }
      }).catch(err => {
        if (err.response && err.response.status !== 504) {
          reject({ message: '请求接口报错！错误码：' + err.response.status })
        } else {
          reject({ message: '请求超时，请重试。' })
        }
      })
    })
  }
}
